home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Applications / MacGzip 1.0 / source / Mac / GzPStrings.c < prev    next >
Text File  |  1995-08-19  |  859b  |  66 lines

  1. /*
  2.  * SPDStrings.c
  3.  * (C) SPDsoft, August 13, 1995
  4.  *
  5.  * Some String utils
  6.  */
  7.  
  8. #include "GzPStrings.h"
  9.  
  10. #ifndef MIN
  11. #    define MIN(a,b) (((a)<(b))?(a):(b))
  12. #endif
  13.  
  14.  
  15.  
  16. void PStrCat( Str255 dest, Str255 src )
  17. {
  18.     long sLen = MIN(*src, 255 - *dest);
  19.     
  20.     BlockMove(src + 1, dest + *dest + 1, sLen);
  21.     *dest += sLen;
  22.     return;
  23. }
  24.  
  25.  
  26. void CStrToStr255( Str255 pstr, char *s )
  27. {
  28.  
  29.     register char        *c;
  30.     
  31.     for(    c = (char *) &pstr[1], pstr[0] = 0x00;
  32.             *s != 0x00 && pstr[0] <= 255 ;
  33.             pstr[0]++
  34.             )
  35.     {
  36.         *c++ = *s++;
  37.     }
  38.  
  39. }
  40.  
  41. void Str255ToCStr( char *s, Str255 pstr )
  42. {
  43.     register char    *p, *pf;
  44.     
  45.     for(    p    = (char *) pstr,
  46.             pf    = p + pstr[0];
  47.  
  48.             p < pf ;
  49.             
  50.             *(s++) = *(++p)
  51.         )
  52.     ;
  53.     
  54.     *s = 0x00;
  55. }
  56.  
  57.  
  58. OSType Str255ToOSType( Str255 pstr )
  59. {
  60.     OSType result='\000\000\000\000';
  61.     
  62.     BlockMove(&(pstr[1]), &result, (Size) MIN(pstr[1],sizeof(OSType)));
  63.     return result;
  64. }
  65.  
  66.